package com.lab.vo;

import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 周报表VO（视图对象）
 * 用于向前端返回完整的周报信息，整合主表数据、成员信息及内容列表，便于前端一站式展示周报详情
 */
@Data
public class WeeklyReportVO {

    /**
     * 周报ID
     * 对应实体类id字段，用于前端标识单条周报记录（如查看详情、编辑操作）
     */
    private Integer id;

    /**
     * 成员ID
     * 对应实体类memberId字段，用于前端关联成员信息（如跳转成员主页）
     */
    private Integer memberId;

    /**
     * 成员姓名（冗余字段）
     * 来源于member表的name字段，直接展示提交人姓名，无需前端二次查询
     */
    private String memberName;

    /**
     * 角色类型
     * 对应实体类roleType字段，展示提交人在实验室的角色（如"前端"、"后端"），便于按角色筛选周报
     */
    private String roleType;

    /**
     * 报表年份
     * 对应实体类reportYear字段，与reportWeek共同标识周报所属的时间范围（如2025年第42周）
     */
    private Integer reportYear;

    /**
     * 周数
     * 对应实体类reportWeek字段，取值1-52，与年份组合形成完整的时间标识
     */
    private Integer reportWeek;

    /**
     * 提交时间
     * 对应实体类submitTime字段，展示周报的最终提交时间，用于排序或筛选最新周报
     */
    private LocalDateTime submitTime;

    /**
     * 周报内容列表
     * 关联WeeklyReportContentVO，以列表形式展示周报的所有具体内容，层次分明
     */
    private List<WeeklyReportContentVO> contents;
}